package BackBeans;

import java.util.ArrayList;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import vo.CategoriaProducto;
import vo.Usuario;


import constantes.ComandosNavegacion;
import delegados.DelegadoControlSubastas;
import dto.DTOSubastaConsultaParametros;
import dto.DTOSubastaConsultaUsuario;


public class buscarSubastasBean 
{
	private static String categoria="";
	private static String parametros="";
	
	private static ArrayList<DTOSubastaConsultaParametros> busquedaSubastas;
	private static ArrayList<DTOSubastaConsultaUsuario> busquedaSubastasUsuario;
	
	static String login="";
	
	public String getLogin() {
		return login;
	}
	public void setLogin(String login) {
		buscarSubastasBean.login = login;
	}
	
	public ArrayList<DTOSubastaConsultaParametros> getBusquedaSubastas() 
	{		
		return busquedaSubastas;
	}
	public void setBusquedaSubastas(ArrayList<DTOSubastaConsultaParametros> busquedaSubastas) 
	{
		buscarSubastasBean.busquedaSubastas = busquedaSubastas;
	}
	
	public ArrayList<DTOSubastaConsultaUsuario> getBusquedaSubastasUsuario() 
	{
		return busquedaSubastasUsuario;
	}
	public void setBusquedaSubastasUsuario(	ArrayList<DTOSubastaConsultaUsuario> busquedaSubastasUsuario) 
	{
		buscarSubastasBean.busquedaSubastasUsuario = busquedaSubastasUsuario;
	}	
	
	public String getCategoria() {
		return categoria;
	}
	public void setCategoria(String categoria)
	{
		
		buscarSubastasBean.categoria = categoria;
	}
	public String getParametros() {
		return parametros;
	}
	public void setParametros(String parametros) 
	{		
		buscarSubastasBean.parametros = parametros;
	}
	public String irBuscar()
	{
		return ComandosNavegacion.COMANDOBUSCARSUBASTAS;
	}	

	
	public String realizarBusqueda()
	{
		DelegadoControlSubastas delegadoControlSubastas = new DelegadoControlSubastas();
		
		if(parametros.equals(""))
		{
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Ingrese un Criterio Valido"));
			return ComandosNavegacion.COMANDOBUSCARSUBASTAS;
		}
		if(categoria.equals("")==false)
		{
			
			busquedaSubastas = delegadoControlSubastas.busquedaSubasta(parametros, new CategoriaProducto(3,categoria));
			if(busquedaSubastas != null)
			{
				if(busquedaSubastas.size()==0)
				{
					FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("No hay Subasta creada por el producto "+parametros+" en la Categoria "+categoria));
					return ComandosNavegacion.COMANDOBUSCARSUBASTAS;
				}
			}
			else
			{
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Criterio NO Valido para Buscar"));
				return ComandosNavegacion.COMANDOBUSCARSUBASTAS;
			}
			
		}
		if(categoria.equals("")==true)
		{
			busquedaSubastas = delegadoControlSubastas.busquedaSubasta(parametros);
			if(busquedaSubastas!=null)
			{
				if(busquedaSubastas.size()==0)
				{
					FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("No hay Subasta creada por el producto "+parametros));
					return ComandosNavegacion.COMANDOBUSCARSUBASTAS;
				}
			}
			else
			{
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Criterio NO Valido para Buscar"));
				return ComandosNavegacion.COMANDOBUSCARSUBASTAS;
			}
		}
		return ComandosNavegacion.COMANDORESULTADOBUSCARSUBASTAS;
	}
	public String realizarBusquedaUsuario()
	{		
		Usuario usuarioLogeado=(Usuario)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("Usuario");
		
		if(usuarioLogeado!=null)
		{
			
			login=usuarioLogeado.getLogin();
			
			DelegadoControlSubastas delegadoControlSubastas = new DelegadoControlSubastas();

			busquedaSubastasUsuario=delegadoControlSubastas.busquedaSubasta(usuarioLogeado);
			if(busquedaSubastasUsuario!=null)
			{
				if(busquedaSubastasUsuario.size()==0)
				{
					FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("El Usuario no ha puesto en Subasta Ningun producto"));
				}
				else
				{
					for (int i = 0; i < busquedaSubastasUsuario.size(); i++) {
						if(busquedaSubastasUsuario.get(i).getTiempoRestante()==0)
						{
							busquedaSubastasUsuario.get(i).setCadenaTiempoRestante("Ya Finalizo la Subasta");
						}
					}
				}
			}
			else
			{
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Criterio NO Valido para Buscar"));
			}
			
			return ComandosNavegacion.COMANDORESULTADOBUSCARSUBASTASUSUARIO;
		}
		else
		{
			return ComandosNavegacion.COMANDOINGRESARUSUARIO;
		}
		
	}

	

}
